package com.dyzx.hbb.security.service;

import com.dyzx.hbb.common.base.Result;
import com.dyzx.hbb.modules.sys.entity.SysUser;
import com.dyzx.hbb.security.model.LoginUser;
import com.dyzx.hbb.security.model.LoginUserInfo;
import com.dyzx.hbb.security.model.SysUserInfo;

import java.util.Map;

/**
 * 认证服务接口
 */
public interface AuthService {

    /**
     * 账号密码登录
     */
    Result<SysUserInfo> login(String username, String password);


    /**
     * 退出登录
     */
    Result<Void> logout();
    boolean forceOut(Long userId);

    /**
     * 注册用户
     */
    Result<Void> register(SysUser user);

    /**
     * 获取当前登录用户
     */
    LoginUser getLoginUser();

    /**
     * 获取当前用户信息
     */
    Result<LoginUserInfo> getCurrentUser();

    /**
     * 获取用户档案
     */
    Result<SysUser> getProfile();

    boolean validateToken(String token);
}